package open.tech.dawn.rest.module.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import open.tech.dawn.jdbc.ISuperService;
import open.tech.dawn.rest.module.system.entity.ZTreeNode;
import open.tech.dawn.rest.module.system.model.SysRole;
import open.tech.dawn.rest.module.system.query.RoleQuery;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author joss
 * @since 2019-11-07
 */
public interface ISysRoleService extends ISuperService<SysRole> {

    /**
     * 设置某个角色的权限
     *
     * @param roleId 角色id
     * @param ids    权限的id
     */
    void setAuthority(Integer roleId, String ids);

    /**
     * 删除角色
     *
     */
    void delRoleById(Integer roleId);

    /**
     * 根据条件查询角色列表
     *
     * @return
     */
    Page<SysRole> selectRoles(Page<SysRole> page, RoleQuery query);

    /**
     * 删除某个角色的所有权限
     *
     * @param roleId 角色id
     * @return
     */
    int deleteRolesById(Integer roleId);

    /**
     * 获取角色列表树
     *
     * @return
     */
    List<ZTreeNode> roleTreeList();

    /**
     * 获取角色列表树
     *
     * @return
     */
    List<ZTreeNode> roleTreeListByRoleId(String[] roleId);

    /**
     * 通过id获取角色名称
     * @param id
     * @return
     */
    String getRoleNameById(Integer id);

    /**
     * 通过id集获取所有角色名称
     * @param ids
     * @return
     */
    String getRoleNameByIds(String ids);

}
